package com.qianfeng.user.service;

import com.qianfeng.user.bean.User;
import com.qianfeng.user.mapper.UserMapper;
import com.qianfeng.utils.DBUtils;

public class UserService {

	/**
	 * 如果id>0,说明用户名找到了用户信息, 说明这个用户名是不可用的
	 * 
	 * @param userName
	 * @return true: 用户名可用 false : 用户名不可用
	 */
	public boolean checkUserName(User user) {
		UserMapper userMapper = DBUtils.getMapper(UserMapper.class);

		long num = userMapper.getUserIdByUserName(user);
		DBUtils.release();
		return num <= 0;

	}

	/**
	 * 保存用户名和密码 对密码进行加密
	 * 
	 * @param userName
	 * @param password
	 * @return
	 */
	public boolean saveUser(User user) {
		UserMapper userMapper = DBUtils.getMapper(UserMapper.class);
		/*
		 * MessageDigest digest; try { // 加密完成之后, 二进制已经不是原来的能在码表中找到对应字符的数值了 digest =
		 * MessageDigest.getInstance("md5");// 不可逆加密 byte[] bs =
		 * digest.digest(user.getPassword().getBytes());
		 * 
		 * Encoder base64 = Base64.getEncoder(); // 将任意二进制转成字符串 String ps =
		 * base64.encodeToString(bs); user.setPassword(ps); // 保存用户信息,
		 * 并且返回刚刚插入的那条数据自动生成的id 就是注册用户的id
		 */
		long num = userMapper.saveUser(user);// users
		if (num > 0) {
			int num1 = userMapper.saveUserInfo(user);
			return num1 > 0;
		} else {
			return false;
		}
	}

	/*
	 * catch (NoSuchAlgorithmException e) { e.printStackTrace(); }
	 * 
	 * return false;
	 * 
	 * }
	 */
	public User getUserByUserNameAndPassword(User user) {
		UserMapper userMapper = DBUtils.getMapper(UserMapper.class);
		/*
		 * MessageDigest digest; try { // 加密完成之后, 二进制已经不是原来的能在码表中找到对应字符的数值了 digest =
		 * MessageDigest.getInstance("md5");// 不可逆加密 byte[] bs =
		 * digest.digest(user.getPassword().getBytes());
		 * 
		 * Encoder base64 = Base64.getEncoder(); // 将任意二进制转成字符串 String ps =
		 * base64.encodeToString(bs); user.setPassword(ps);
		 */
		User user1 = userMapper.getUserByUserNameAndPassword(user);
		return user1;
		/*
		 * } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return null;
		 */
	}
}
